The present invention relates to provisioning virtual resources in a cloud-computing environment and, in particular, to capturing information describing configuration items (CIs) required in order to manage a hybrid cloud-computing environment.
A hybrid cloud is a type of computing infrastructure that includes one or more “private” cloud or non-cloud environments under control of a user, and at least one “public” cloud-computing environment managed by a third party, such as a commercial broker of cloud-based services. These public and private zones of a hybrid cloud are distinct entities, but are coupled closely enough to enable multiple deployment models.
For example, a hybrid cloud might include a set of virtualized PaaS (Platform as a Service) services provisioned on a public cloud. In this case, provisioning these PaaS services on a public cloud might make those services more readily available to applications residing in other zones of the hybrid cloud, such as a private cloud or a private non-cloud enterprise data center.
Managing hybrid-cloud resources can be complex, and this is especially true when a hybrid cloud comprises non-virtualized domains. In such cases, change-management or service-management tasks may be at least partly handled by a dedicated service-management system (or “SMS”) that tracks, manages, and controls configuration items (“CIs”). As the term is used here, a CI may be any entity of the hybrid cloud that must be managed and controlled in order to deliver a service. These entities may, for example, be comprise virtual machines, applications, infrastructure components, specific instances of software objects, configuration settings, middleware, networks, or a service itself.
In some embodiments, each CI may be identified by a unique name and a set of specific attributes, allowing an SMS to manage the CI as a self-contained unit throughout its lifecycle. This CI information may be stored or modeled in a configuration-management database (“CMDB”) that stores attribute data about each CI and about relationships between CIs. This attribute data may, for example, comprise a combination of software-configuration settings, hardware specifications, or application requirements. Stored relationships between CIs may, for example, comprise a dependency relationship that requires two types of virtual machine to be provisioned in a certain order, or a relationship between a software application and an infrastructure component on which the application is installed.
Existing service-management systems generally use an automated discovery agent (or agentless tool) to collect CI information from service-management end points, such as network-management systems, infrastructure components, or network nodes. This discovered CI information is then stored in a CMDB for ongoing reference.
Data collected in this way, however, is not automatically validated as being accurate and current enough to be used reliably for configuration-management, billing-management, event-management, or other purposes by authorized IT-management systems like an SMS or a change-management system. Therefore, stored CI data must be validated or “promoted” to an authorized status, often by consolidating the stored CI data with other change-management data. In some cases, only validated CI information stored in a configuration-management database may be used by an authorized user or management system.
Because discovery entails examining every configuration item of every network of a hybrid cloud, using a discovery mechanism to populate a CMDB can be time-consuming and resource-intensive. In addition, a discovery tool must be initialized with details of the managed cloud environment in order to access every CI, such as a model of each cloud's network topology or privacy and security constraints that may restrict access to certain CIs.
It can also be difficult for a discovery tool to ensure that it is accurately tracking current states of every CI if a cloud is known to frequently provision and deprovision virtual resources. In such cases, by the time a discovery agent has finished traversing a large network, some virtualized CIs may have been added, deleted, or reconfigured by a cloud-orchestration mechanism or other provisioning function, thus rendering at least part of the discovered information obsolete before it can be reported.
Furthermore, although discovery agents can discover CIs known to a particular user's cloud-computing environment, they may not be able to identify changes made by a cloud-service provider without the user's knowledge. This may make it impossible to consolidate certain CIs with change-management data used by the cloud provider. In such cases, CI data may be known to a cloud's cloud-orchestration mechanism because that data is needed to perform operations like provisioning virtualized resources. However, existing CI discovery agents generally have no way to access that information.
There is thus a need for a method of capturing CI data and populating a CMDB that does not require brute-force automated discovery and there is a particular need for a way to access and consolidate existing configuration-item provisioning information that may already be known to a cloud-orchestration mechanism.